#include <iostream>
#include <memory>


class Test
{
public:
    Test():a(std::make_unique<int>())
    {
        std::cout << "构造函数\n";
    }
    ~Test()
    {
        std::cout << "析构函数\n";
    }
private:
    std::unique_ptr<int>a;
};



int main()
{   
    // std::shared_ptr<Test>p = std::make_shared<Test>();
    // //引用计数器：记录当前有多少个指针指向这块内存
    // std::cout<<p.use_count()<<std::endl;
    // std::shared_ptr<Test>p1=p;
    // std::cout<<p.use_count()<<std::endl;
    // p1=nullptr;
    // std::cout<<p.use_count()<<std::endl;
    
    //不要使用裸指针！！！
    // std::shared_ptr<Test>p = std::make_shared<Test>();
    // p=std::make_shared<Test>();


    return 0;

}






